package com.lovo.system.advice;

import com.lovo.system.constant.MessageCode;
import com.lovo.system.utils.ResponseResult;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

//@RestControllerAdvice 也是代表当前类为所有控制器的通知类
//但是@RestControllerAdvice 这个通知类返回的是一个json数据
//@ControllerAdvice 这个通知类返回的是一个页面
//同时使用优先调用@ControllerAdvice中的通知方法
@RestControllerAdvice
public class AllRestControllerAdvice {

    //@ExceptionHandler
    //表示当前这个方法为一个异常的处理方法
    //Exception e 参数，这个参数是由前端控制器传递过来的
    //代表的是应用控制器抛出的异常
    @ExceptionHandler(Exception.class)
    public ResponseResult exceptionHandler(Exception e){
        ResponseResult responseResult = new ResponseResult();
        responseResult.setCode(MessageCode.ERROR.code);
        responseResult.setMessage(MessageCode.ERROR.message);
        e.printStackTrace();
        return responseResult;
    }

}
